#pragma once
#include "../scion_utilities/hzpch.h"

#include "Rendering/Essentials/Shader.h"
#include "Rendering/Essentials/Texture.h"

namespace SCION_RESOURCES
{
  class AssetManager
  {
  private:
    std::map<std::string, std::shared_ptr<SCION_RENDERING::Texture>> m_mapTextures{};
    std::map<std::string, std::shared_ptr<SCION_RENDERING::Shader>> m_mapShader{};

  public:
    AssetManager() = default;
    ~AssetManager() = default;

    bool AddTexture(const std::string& textureName, const std::string& texturePath, bool pixelArt = true);
    const SCION_RENDERING::Texture& GetTexture(const std::string& textureName);

    bool AddShader(const std::string& shaderName, const std::string& vertextPath, const std::string& fragmentPath);
    SCION_RENDERING::Shader& GetShader(const std::string& shaderName);
  };
}